var Koa = require('koa'),
    Router = require('koa-router'),
    views = require('koa-views'),
    common = require('./module/common.js'),
    bodyParser = require('koa-bodyparser'),
    static = require('koa-static'),
    render = require('koa-art-template'),
    DB = require('./module/db.js'),
    path = require('path');
 
var app = new Koa(),
    router = new Router();
 
//koa中间件


//应用ejs模板
// app.use(views('views',{
//   extension:'ejs'
// }));

//配置静态web服务的中间件
app.use(static('./static'));

//写一个中间件来配置公共的信息
// app.use(async (ctx,next) => {
//   ctx.state.userinfo = '张三';
//   await next();
// });

// 配置koa-art-template模板引擎
render(app, {
  root: path.join(__dirname,'views'),  //视图的位置
  extname:'.html',  //后缀名
  debug: process.env.NODE_ENV !== 'production'  //是否开启调试模式
})



//接受post提交的数据(原生node)
// router.post('/login',async (ctx)=>{

//   var data = await common.getPostData(ctx);

//   console.log(data);
//   ctx.body=data;
// })

//配置post bodyparser的中间件
app.use(bodyParser());

//接受post提交的数据(koa-bodyparser)
router.post('/login',async (ctx)=>{
console.log(ctx.request.body)
  ctx.body=ctx.request.body;
})

router.get('/in', async (ctx, next) => {
  await ctx.render('index');
});
 
router.get('/', async (ctx, next) => {
  var result = await DB.find('user',{});
  // console.log(result);

  // ctx.cookies.set('userinfo','zhangsan',{
  //   maxAge:60*1000*60, 
  //   path:'/news',  /* 配置可以访问的页面 */
  //   httpOnly: true  /* true表示这个cookie只有服务端可以访问，false表示服务端和客户端都能访问 */
  // });
  await ctx.render('index',{
    list:result
  })
    //ctx.body = '首页'
});

router.get('/news', async (ctx, next) => {
  
  var userinfo = ctx.cookies.get('userinfo');
  // console.log(userinfo);
  let arr = ['11111','2222','3333333'];
  await ctx.render('news',{
    list:arr
  })
 });

 router.get('/add', async (ctx, next) => {
  
  await ctx.render('add')
 });

 router.post('/doAdd', async (ctx, next) => {
  let data = await DB.insert('user',ctx.request.body);

  try{
    if(data.result.ok){
      ctx.redirect('/');
    }
  }catch(err){
    return;
    ctx.redirect('/add');
  }
 });

router.get('/edit', async (ctx, next) => {
  
  //通过get传来的id获取用户信息

  let id=ctx.query.id;

  let data =await DB.find('user',{"_id":DB.getObjectId(id)});

  //获取用户信息
  await ctx.render('edit',{

    list:data[0]

  })
});


router.post('/doEdit',async(ctx,next)=>{
  var id = ctx.request.body.id,
      username = ctx.request.body.username,
      age = ctx.request.body.age,
      sex = ctx.request.body.sex;
  let data =await DB.update('user',{"_id":DB.getObjectId(id)},{
    username,age,sex
  });
  
  try{
    if(data.result.ok){
      ctx.redirect('/');
    }
  }catch(err){
    return;
    ctx.redirect('/');
  }
})

 


router.get('/delete', async (ctx, next) => {
  
  //通过get传来的id获取用户信息

  let id=ctx.query.id;

  let data = await DB.remove('user',{"_id":DB.getObjectId(id)});
  
  try{
    if(data.result.ok){
      ctx.redirect('/');
    }
  }catch(err){
    return;
    ctx.redirect('/edit');
  }
});


// app.use(async (ctx,next) => {
//   console.log('这是一个中间件');
//   next();

//   if(ctx.status == 404){  /* 如果页面找不到 */
//     ctx.status = 404;
//     ctx.body = '这是404页面';
//   }else{
//     console.log(ctx.url);
//   }
// });

 
app
  .use(router.routes())
  .use(router.allowedMethods());

app.listen(3010);